1. Field of the Invention
This invention relates to the data processing field and more particularly to a means for undoing a partially executed software instruction to restore the central processing unit to the state it was in before the start of instruction execution.
2. Description of the Prior Art
In a data processing system using a virtual memory addressing scheme, conditions may arise during the execution of a software instruction in which an operand addressed by the software instruction is not present in physical memory and therefore must be read into physical memory by a software routine. In order to be able to execute the software routine, the execution of the current software instruction must be suspended in a manner which permits it to be restarted once the missing operand is brought into physical memory.
In order to improve the system throughput, the virtual memory address is incremented or decremented immediately after being transferred to virtual memory so that it is available during the next memory cycle. If the operand is not found, then the previous virtual memory address must be recomposed and used when the missing operand is found and stored in physical memory. This would require another register, one storing the original virtual address and the other storing the incremented or decremented virtual address. This would assure an improved throughput at the cost of a large register typically 24 or 32 bits.
Of course one may wait until the operand is read out of physical memory before incrementing or decrementing the virtual address. This approach would also have a detrimental impact on system performance.
Another approach is to perform the UNDO operation exclusively by firmware. This will also have a negative impact on performance.